package net.zabuchy.issue.dao;
 
import java.util.List;

import net.zabuchy.IssueHelper.IssueStatuses;
import net.zabuchy.issue.entity.Attachment;
import net.zabuchy.issue.entity.Issue;
import net.zabuchy.issue.entity.IssueLink;
import net.zabuchy.issue.entity.Notification;
 
public interface IssueDao {
 
    void add(Issue issue);
    
    void addAttachment(Attachment attach);
    
    void addLink(IssueLink link);
    
    void addNotification(Notification notification);
 
    void update(Issue issue);
 
    void delete(Issue issue);
 
    void deleteNotification(Notification noti);
    
    void deleteAttachment(Attachment attach);
    
    void deleteLink(IssueLink link);
    
    List<Issue> findAll();
 
    Issue findById(int id);
    
    List<Issue> findIssuesRelatedToIteration(Integer id);
    
    List<Issue> findAllForProject(int projectId);
    
    List<Issue> findAllForProjectAndIteration(int projectId, int iterationId);
 
    List<Issue> findAllForProjectAndIterationAndStatus(int projectId, int iterationId, IssueStatuses status);
    
    public List<Issue> findAllForProjectToConfirmation(int projectId, int iterationId);
    
}